Projekt Unfollowme und Counter Speech

Wichtige Netzwerkma??e: Degrees Migrationshintergrund etc. weniger follower = weniger degrees? Cluster density f??r engagieren sie sich f??r das gleiche und viel ? Isolates Broker nach politik schauen (wenn LGN dann auch andere Politik?)

library("igraph")
library("igraphdata")
# Selbsttest: Manipulieren Sie direkt im Skript oben die Werte f??r n=18 und power=1. Was passiert, wenn 35 Personen im Netzwerk sind und die Power den Wert 2 hat?
unfollowed <- read.csv("https://raw.githubusercontent.com/birx/Blockseminar/master/03UFEdgelist.csv", header=T, as.is=T) # Liest die Edgelist ein.
unfollownod <- read.csv("https://raw.githubusercontent.com/birx/Blockseminar/master/01UFNodelist.csv", header=T, as.is=T) # Liest die Nodelist ein.
unfollowed <- as.matrix(unfollowed) # Erstellt aus der Edgelist eine Matrix.
unfollow<- graph_from_data_frame(d=unfollowed, vertices=unfollownod, directed=F) # Fuegt die Edge- und Nodelist zu einem igraph-Objekt zusammen.
plot(unfollow, layout=layout_with_kk, sub= "Netzwerk von Unfollowme") 

UF2 <- delete_vertices(unfollow, V(unfollow)[name = "Laut gegen Nazis"])
plot(LGN, layout=layout_nicely, main= "Ohne LGN", sub= "Netzwerk von Unfollowme ohne Laut gegen Nazis") #vertex.color= "peru", vertex.label.color="grey27"

# Selbsttest: Manipulieren Sie direkt im Skript oben die Werte f??r n=18 und power=1. Was passiert, wenn 35 Personen im Netzwerk sind und die Power den Wert 2 hat?
csnod <- read.csv("https://raw.githubusercontent.com/birx/Blockseminar/master/02CSNodelist.csv", header=T, as.is=T)
csedge <- read.csv("https://raw.githubusercontent.com/birx/Blockseminar/master/03CSEdgelist.csv", header=T, as.is=T)
countered <- as.matrix(csedge)
counterspeech<- graph_from_data_frame(d=csedge, vertices=csnod, directed=F)
plot(counterspeech, layout=layout_with_kk)

CS2<- delete_vertices(counterspeech, V(counterspeech)[name="Laut gegen Nazis"])
plot(CS2, layout=layout_with_kk)

plot(CS2)# vertex.color=c("pink", "skyblue")[1

zusnod <- read.csv("https://raw.githubusercontent.com/birx/Blockseminar/master/GemeinsamNodes06.csv", header=T, as.is=T)
zusedge <-  read.csv("https://raw.githubusercontent.com/birx/Blockseminar/master/GemeinsamEdges01.csv", header=T, as.is=T)
zusmatrix <- as.matrix(zusedge)
zusammen <- graph_from_data_frame(d=zusedge, vertices=zusnod, directed=F)
plot(zusammen, layout=layout_with_gem)

zusammen
IGRAPH dc6b87f UN-B 122 165 -- 
+ attr: name (v/c), type (v/n), sex (v/n), art (v/n), art2 (v/n), art3 (v/n), national
| (v/n), migration (v/n), engagement (v/n), engagement2 (v/n), follower (v/n), alter (v/n),
| Projekt (v/n), relationship (e/l), time (e/n), time2 (e/n)
+ edges from dc6b87f (vertex names):
[1] Namika   --Laut gegen Nazis                                                         
[2] Namika   --Jos\303\251 Carreras Leuk\303\244mie Stiftung                            
[3] Namika   --Die Arche Christliches Kinder-und Jugendwerk e.V.                        
[4] Namika   --SOS-Kinderdorf e.V.                                                      
[5] Namika   --Viva con Agua de Sankt Pauli e.V                                         
[6] Trettmann--Laut gegen Nazis                                                         
+ ... omitted several edges
LGN <- delete_vertices(zusammen, V(zusammen)[name="Laut gegen Nazis"])
# plot(zusammen, edge.arrow.size=.5, vertex.label.color="black",
V(zusammen)$color <- "gold"
plot(zusammen)

Die einzelnen Projekte werden Visualisiert, dabei werden die Knoten, die sowohl in Counterspeech als auch in Unfollowme vorkommen gr??n visualisiert.

V(zusammen)[(V(zusammen)$type=="2")]$shape <- "square"
V(zusammen)[(V(zusammen)$type=="1")]$shape <- "circle"
V(zusammen)[(V(zusammen)$Projekt=="3")]$color <- "darkolivegreen2"
V(zusammen)[(V(zusammen)$Projekt=="1")]$color <- "coral1"
V(zusammen)[(V(zusammen)$Projekt=="2")]$color <- "deepskyblue"
plot(zusammen)

V(zusammen)[(V(zusammen)$Projekt=="3")]$color <- "gold"
V(zusammen)[(V(zusammen)$Projekt=="1")]$color <- "gold"
V(zusammen)[(V(zusammen)$Projekt=="2")]$color <- "gold"
plot(zusammen)

These: Es engagieren sich mehr K??nstler mit Migrationshintergrund bei den Projekten, da …

Um herauszufinden, welche der K??nstler einen Migrationshintergrund haben wird nach dem attribut “migration” selektiert, das den Wert 1 oder 2 annimmt herausfinden, welche K??nstler einen Migrationshintergrund haben und welche nicht

V(zusammen)[(V(zusammen)$type=="2")]$shape <- "square"
V(zusammen)[(V(zusammen)$type=="1")]$shape <- "circle"
V(LGN)[(V(LGN)$type=="2")]$shape <- "square"
V(LGN)[(V(LGN)$type=="1")]$shape <- "circle"
plot (zusammen)

V(zusammen)[(V(zusammen)$migration=="1")]$color <- "red" 
migration<- delete_vertices(zusammen, V(zusammen)[migration =="99"]) # es werden knoten gel<U+00F6>scht, damit nur die <U+00FC>brig bleiben, die K<U+00FC>nstler <U+00FC>brig bleiben, die einen Migrationshintergrund haben f<U+00FC>r eine bessere <U+00FC>bersicht. 
plot(migration,layout=layout_in_circle) 

plot(zusammen, layout= layout_nicely)

NA

Man kann erkennen, dass

herausfinden, ob K??nstler mit Migrationshintergrund sich auch eher f??r Politik engagieren

  V(zusammen)[(V(zusammen)$engagement=="5")]$color <- "firebrick"
plot(zusammen, layout=layout_with_kk)

politik1<- delete_vertices(zusammen, V(zusammen)[engagement !="5" & type=="2" ]) # alles l<U+00F6>schen was sowohl nicht sich f<U+00FC>r politik engagiert ALS AUCH eine Organisation ist (alle Organisationen die sich nicht f<U+00FC>r politik engagieren)
mmigration <- delete_vertices(politik1, V(politik1)[type=="1" & migration != "1"])
mm<- delete_vertices(mmigration, V(mmigration)[name=="Laut gegen Nazis"])
plot(mm)

degree(mm)
                                                                     Sido 
                                                                        1 
                                                                   Namika 
                                                                        0 
                                                                     Nura 
                                                                        1 
                                                                KoolSavas 
                                                                        0 
                                                              Mateo Jasik 
                                                                        0 
                                                               Salwa Benz 
                                                                        0 
                                                                 DJ Chino 
                                                                        0 
                                                             Miss Platnum 
                                                                        1 
                                                                     BRKN 
                                                                        1 
                                                                 Don Cali 
                                                                        0 
                                                         Alexandra Wester 
                                                                        0 
                                                           Joshiko Saibou 
                                                                        0 
                                                                    ILIRA 
                                                                        0 
                                                            Oliver Harris 
                                                                        0 
                                                                    Romee 
                                                                        0 
Chemnitzer Wirtschaftsf\303\266rderungs- und Entwicklungsgesellschaft mbH 
                                                                        1 
                                                                 Pro Asyl 
                                                                        2 
                                        SOS Mediterranee Deutschland e.V. 
                                                                        1 
                             Bundeszentrale f\303\274r politische Bildung 
                                                                        1 
                                                    #unteilbar Initiative 
                                                                        2 
                                                  Mal \303\211lev\303\251 
                                                                        3 
                                           Stra\303\237engezwitscher e.V. 
                                                                        0 
                                                   Civil March for Aleppo 
                                                                        0 
                                                           Daseinsfreunde 
                                                                        0 
                                                            Friedensmusik 
                                                                        0 
                                                         Social Heartbeat 
                                                                        0 

K??nstler mit Migrationshintergrund engagieren sich f??r 7 Organisationen der Politik. Insgesamt gibt es 16 Menschen mit Migrationshintergrund.

Es wurden alle Organisationen gel??scht, die sich nicht f??r Politik engagieren und alle Personen, die keinen Migrationshintergrund haben. Es bleibt das Netzwerk aus Menschen mit Migrationshintergrund. Man erkennt, dass nun 5 Organisationen aus dem Bereich Politik alleine stehen. 6 Organisationen aus dem Bereich Politik sind mit K??nstlern mit Migrationshintergrund verbunden.

Nun werden die K??nstler ohne Migrationshintergrund zum Vergleich herangezogen.

V(zusammen)[(V(zusammen)$engagement=="5")]$color <- "firebrick"
politik2<- delete_vertices(zusammen, V(zusammen)[engagement !="5" & type=="2" ]) # alles l<U+00F6>schen was sowohl nicht sich f<U+00FC>r politik engagiert ALS AUCH eine Organisation ist (alle Organisationen die sich nicht f<U+00FC>r politik engagieren)
omigration <- delete_vertices(politik2, V(politik2)[migration=="1"])
om <- delete_vertices(omigration, V(omigration)[name="Laut gegen Nazis"])
plot(om, layout=layout_with_kk)

degree(om) # die summe aller Degrees ist 18 = 9 Verbindungen 
                                                                Trettmann 
                                                                        2 
                                                            Frederick Lau 
                                                                        0 
                                                                 Visa Vie 
                                                                        1 
                                                                    Smudo 
                                                                        0 
                                                          Antje Schomaker 
                                                                        0 
                                                                    Elisa 
                                                                        0 
                                                         Matthias Killing 
                                                                        0 
                                                              Jan Sosniok 
                                                                        0 
                                                        Dan J\303\274rgen 
                                                                        0 
                                                                    Olson 
                                                                        0 
                                                                   Andhim 
                                                                        0 
                                                                Simon Bus 
                                                                        0 
                                                                Fruchtmax 
                                                                        0 
Chemnitzer Wirtschaftsf\303\266rderungs- und Entwicklungsgesellschaft mbH 
                                                                        1 
                                                                 Pro Asyl 
                                                                        2 
                                        SOS Mediterranee Deutschland e.V. 
                                                                        1 
                             Bundeszentrale f\303\274r politische Bildung 
                                                                        0 
                                                    #unteilbar Initiative 
                                                                        0 
                                                                  Gleis 8 
                                                                        0 
                                                              Leslie Clio 
                                                                        0 
                                                              Enno Bunger 
                                                                        2 
                                                              KhebezDawle 
                                                                        2 
                                                             Van de Forst 
                                                                        0 
                                                           Ronja Maltzahn 
                                                                        2 
                                                             Four Colours 
                                                                        0 
                                                               MattenZwei 
                                                                        0 
                                                                  Uwe Kaa 
                                                                        0 
                                                     Banda Internationale 
                                                                        0 
                                                                 New Sway 
                                                                        0 
                                                                 Pohlmann 
                                                                        0 
                                           Stra\303\237engezwitscher e.V. 
                                                                        1 
                                                   Civil March for Aleppo 
                                                                        1 
                                                           Daseinsfreunde 
                                                                        1 
                                                            Friedensmusik 
                                                                        1 
                                                         Social Heartbeat 
                                                                        1 

K??nstler ohne Migrationshintergrund engagieren sich f??r 9 Organisationen der Politik. Insgesamt gibt es 25 Personen ohne Migrationshintergrund.

Gegen??berstellung beider Netzwerke:

par(mfrow=c(1,2), mar=c(0,0,2,1)) # definiert, dass 3 Abbildungen in einer Zeile stehen
plot(om, 
     sub = "K<U+00FC>nstler ohne Migrationshintergrund, die sich f<U+00FC>r politische Organisationen engagieren")
plot(mm,
     sub= "K<U+00FC>nstler mit Migrationshintergrund, die sich f<U+00FC>r politische Organisationen engagieren")
par(mfrow=c(1,1), mar=c(0,0,2,2)) # setzt die Darstellung wieder zur??ck

components(zusammen) # Anzahl der Komponenten (alle Knoten, die miteinander verbunden sind)
is_connected(zusammen) # zeigt an ob das Netzwerk miteinander verbunden ist (ob es eine einzige Komponente ist)

diameter(zusammen) # Welchen Durchmesser hat das Netzwerk? (Umfang) Berechnet, wie der Abstand im Netzwerk ist

edge_density(zusammen) # Wie ist die Dichte des Netzwerks? 
edge_density(unfollow)
edge_density(counterspeech)

plot(LGN, layout=layout_with_kk, main= "unfollow")
plot(CS2, layout=layout_with_kk, main = "Counterspeech")

mean_distance (zusammen)# Pfaddistanz wie lange bis zum am weitesten entfernten Knoten? 
gc <- cluster_walktrap(UF2)
modularity(gc)
[1] 0.7281775
membership(gc)
                                                                                                                                                 Sido 
                                                                                                                                                    6 
                                                                                                                                            Trettmann 
                                                                                                                                                    3 
                                                                                                                                               Namika 
                                                                                                                                                    1 
                                                                                                                                                 Nura 
                                                                                                                                                    3 
                                                                                                                                        Frederick Lau 
                                                                                                                                                    1 
                                                                                                                                             Visa Vie 
                                                                                                                                                    4 
                                                                                                                                            KoolSavas 
                                                                                                                                                    2 
                                                                                                                                                Smudo 
                                                                                                                                                    2 
                                                                                                                                      Antje Schomaker 
                                                                                                                                                   15 
                                                                                                                                          Mateo Jasik 
                                                                                                                                                    5 
                                                                                                                                           Salwa Benz 
                                                                                                                                                   16 
                                                                                                                                                Elisa 
                                                                                                                                                   17 
                                                                                                                                             DJ Chino 
                                                                                                                                                    5 
                                                                                                                                     Matthias Killing 
                                                                                                                                                    1 
                                                                                                                                         Miss Platnum 
                                                                                                                                                    3 
                                                                                                                                                 BRKN 
                                                                                                                                                   10 
                                                                                                                                          Jan Sosniok 
                                                                                                                                                   18 
                                                                                                                                             Don Cali 
                                                                                                                                                    5 
                                                                                                                                    Dan J\303\274rgen 
                                                                                                                                                   19 
                                                                                                                                     Alexandra Wester 
                                                                                                                                                   11 
                                                                                                                                                Olson 
                                                                                                                                                   13 
                                                                                                                                               Andhim 
                                                                                                                                                    7 
                                                                                                                                            Simon Bus 
                                                                                                                                                   14 
                                                                                                                                       Joshiko Saibou 
                                                                                                                                                   12 
                                                                                                                                            Fruchtmax 
                                                                                                                                                    5 
                                                                                                                                                ILIRA 
                                                                                                                                                   20 
                                                                                                                                        Oliver Harris 
                                                                                                                                                    8 
                                                                                                                                                Romee 
                                                                                                                                                    9 
                                                                                                        Jos\303\251 Carreras Leuk\303\244mie Stiftung 
                                                                                                                                                    1 
                                                                                                    Die Arche Christliches Kinder-und Jugendwerk e.V. 
                                                                                                                                                    5 
                                                                                                                                  SOS-Kinderdorf e.V. 
                                                                                                                                                    1 
                                                                                                                     Viva con Agua de Sankt Pauli e.V 
                                                                                                                                                    1 
                                                                            Chemnitzer Wirtschaftsf\303\266rderungs- und Entwicklungsgesellschaft mbH 
                                                                                                                                                    3 
                                                                                                                                             Pro Asyl 
                                                                                                                                                    3 
                                                                                                                                PETA Deutschland e.V. 
                                                                                                                                                    2 
                                                                                                           Landeskriminalamt Baden- W\303\274rtemberg 
                                                                                                                                                    2 
                                                                                                                                  Telefonica Stiftung 
                                                                                                                                                    2 
                                                                                                                            Visions for Children e.V. 
                                                                                                                                                    4 
                                                                                                                                     Sonnenblume e.V. 
                                                                                                                                                    2 
                                                PFIF - Partner f\303\274r Innovation & F\303\266rderung GmbH & Co. KG (Du bist Deutschland- Kampagne) 
                                                                                                                                                    2 
                                                                   Deutsches Kinderhilfswerk e.V. (Bildungspaket f\303\274r Fl\303\274chtlingskinder) 
                                                                                                                                                    3 
                                                                                                           P x P Embassy e.V. (PXP Festival (Kinder)) 
                                                                                                                                                    2 
                                                                                                                             Til Schweiger Foundation 
                                                                                                                                                    2 
                                                                                                                                   Berliner CSD e.V.  
                                                                                                                                                    5 
                                                                                                                                     Afrika Rise e.V. 
                                                                                                                                                    5 
                                                                                                                                     The ONE Campaign 
                                                                                                                                                    5 
                                                                                                                                 Bertelsmann Stiftung 
                                                                                                                                                    5 
                                                                                                                          Potsdamer Klinikclowns e.V. 
                                                                                                                                                    5 
                                                                                                                                       Kindernothilfe 
                                                                                                                                                    5 
                                                                                  F\303\266rderverein Kinder- und Jugendhospiz D\303\274sseldorf e.V. 
                                                                                                                                                    1 
                                                                                                             Deutsches Komitee f\303\274r UNICEF e.V. 
                                                                                                                                                    1 
                                                                                                                               Sat1 - Ran hilft Haiti 
                                                                                                                                                    1 
                                                                                                                                Friends with benefits 
                                                                                                                                                    4 
                                                                                                                    SOS Mediterranee Deutschland e.V. 
                                                                                                                                                    4 
                                                                                                                                   Herzenssache e.V.  
                                                                                                                                                    1 
Wei\303\237er Ring Gemeinn\303\274tziger Verein zur Unterst\303\274tzung von Kriminalit\303\244tsopfern und zur Verh\303\274tung von Straftaten e. V. 
                                                                                                                                                    1 
                                                                                                                         Urban Culture/DeluxeKidz e.V 
                                                                                                                                                    4 
                                                                                                                              Smiling Kids of Africa  
                                                                                                                                                   12 
                                                                                                                       DKMS gemeinn\303\274tzige GmbH 
                                                                                                                                                    8 
                                                                                                                                       Race to Raise  
                                                                                                                                                    8 
                                                                                                         Bundeszentrale f\303\274r politische Bildung 
                                                                                                                                                    6 
                                                                                                                            International Media Corps 
                                                                                                                                                    6 
                                                                                                                               Robert Bosch Stiftung  
                                                                                                                                                    4 
                                                                                               F\303\266rderturm Ideen f\303\274r Essener Kinder e.V. 
                                                                                                                                                    5 
                                                                                                                           Deutsches Rotes Kreuz e.V. 
                                                                                                                                                   11 
                                                                                                                      F\303\266rderkreis AK Asyl e.V. 
                                                                                                                                                   13 
                                                                                                                                            Unteilbar 
                                                                                                                                                   10 
                                                                                                                    Sch\303\274ler Helfen Leben e.V.  
                                                                                                                                                    5 
                                                                                                                              Amadeu Antonio Stiftung 
                                                                                                                                                    7 
                                                                                                                                      Opferfonds CURA 
                                                                                                                                                    7 
                                                                                                                       Deutscher Caritasverband e. V. 
                                                                                                                                                   14 
                                                                                 Katholische Jugendf\303\274rsorge der Di\303\266zese Regensburg e.V. 
                                                                                                                                                    9 
                                                                                                                   Bundesvereinigung Lebenshilfe e.V. 
                                                                                                                                                    9 
plot (gc, UF2, edge.arrow.size=.2, layout=layout_nicely)

gc <- cluster_walktrap(CS2)
modularity(gc)
[1] 0.7665556
membership(gc)
                                                                Smudo 
                                                                    7 
                                                              Gleis 8 
                                                                   10 
                                                          Leslie Clio 
                                                                    1 
                                                          Enno Bunger 
                                                                    2 
                                                          KhebezDawle 
                                                                    6 
                                                         Van de Forst 
                                                                    9 
                                                       Ronja Maltzahn 
                                                                    5 
                                                         Four Colours 
                                                                   11 
                                                           MattenZwei 
                                                                   12 
                                                              Uwe Kaa 
                                                                   13 
                                                 Banda Internationale 
                                                                    8 
                                                             New Sway 
                                                                   14 
                                                             Pohlmann 
                                                                    3 
                                              Mal \303\211lev\303\251 
                                                                    4 
                                                  P x P Embassy e.V.  
                                                                    7 
                                             Til Schweiger Foundation 
                                                                    7 
                                                PETA Deutschland e.V. 
                                                                    7 
                                    SOS Mediterranee Deutschland e.V. 
                                                                    4 
                                            Mensch Mensch Mensch e.V. 
                                                                    4 
                                              The VOICE Refugee Forum 
                                                                    4 
                                              Kein Mensch ist illegal 
                                                                    4 
                                                       Sea-Watch e.V. 
                                                                    4 
                                                            Unteilbar 
                                                                    4 
                                                             Pro Asyl 
                                                                    2 
                                         Sea Shepherd Deutschland e.V 
                                                                    3 
                                          myclimate Deutschland gGmbH 
                                                                    3 
                  Jane Goodall Institut \342\200\223 Deutschland e.V. 
                                                                    3 
                                              dieUmweltDruckerei GmbH 
                                                                    3 
                                              Deutsche Meeresstiftung 
                                                                    3 
                                     Viva con Agua de Sankt Pauli e.V 
                                                                    1 
                                        Rollis f\303\274r Afrika e.V. 
                                                                    4 
   Gemeinn\303\274tzige Respekt! Kein Platz f\303\274r Rassismus GmbH 
                                                                    4 
         Deutsche Gesellschaft f\303\274r die Vereinten Nationen e.V. 
                                                                    4 
                                       Stra\303\237engezwitscher e.V. 
                                                                    2 
            F\303\266rderverein f\303\274r Knochenmarktransplantation 
                                                                    2 
                                       DKMS gemeinn\303\274tzige GmbH 
                                                                    2 
                                                        Wir sind mehr 
                                                                    2 
                                              Amadeu Antonio Stiftung 
                                                                    2 
                                               Civil March for Aleppo 
                                                                    6 
                                                       Daseinsfreunde 
                                                                    6 
                                                  Pariet\303\251 Gala 
                                                                    6 
                                              Haiti Kinder Hilfe e.V. 
                                                                    9 
                                  Krebsberatungsstelle M\303\274nster 
                                                                    9 
                                                        Friedensmusik 
                                                                    5 
                                                     Social Heartbeat 
                                                                    5 
                                 Inklusives Netzwerk Bad Pyrmont e.V. 
                                                                    5 
                                             Aktion Friedensdorf e.V. 
                                                                    5 
                                                      Make Some Noise 
                                                                    4 
Terre des Femmes \342\200\223 Menschenrechte f\303\274r die Frau e.V. 
                                                                    1 
                                           Deutsches Rotes Kreuz e.V. 
                                                                    1 
          Bundeszentrale f\303\274r gesundheitliche Aufkl\303\244rung 
                                                                    1 
                                            Cultures Interactive e.V. 
                                                                    1 
                                                Musik bewegt Stiftung 
                                                                    3 
                                                Vangardist Media GmbH 
                                                                    1 
                          Aktionsb\303\274ro Ramstein-Kampagne Berlin 
                                                                    1 
                                                      Greenpeace e.V. 
                                                                    1 
                                                     GoVolunteer e.V. 
                                                                    1 
                                              The Power of the Hearts 
                                                                    8 
                                                     Brass gegen Hass 
                                                                    8 
plot (gc, CS2, edge.arrow.size=.2, layout=layout_nicely)

LS0tCnRpdGxlOiAiVW5mb2xsb3dtZSBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKKipQcm9qZWt0IFVuZm9sbG93bWUgdW5kIENvdW50ZXIgU3BlZWNoKioKCldpY2h0aWdlIE5ldHp3ZXJrbWE/P2U6IApEZWdyZWVzIApNaWdyYXRpb25zaGludGVyZ3J1bmQgZXRjLiB3ZW5pZ2VyIGZvbGxvd2VyID0gd2VuaWdlciBkZWdyZWVzPwpDbHVzdGVyCmRlbnNpdHkgZj8/ciBlbmdhZ2llcmVuIHNpZSBzaWNoIGY/P3IgZGFzIGdsZWljaGUgdW5kIHZpZWwgPwpJc29sYXRlcyAKQnJva2VyIApuYWNoIHBvbGl0aWsgc2NoYXVlbiAod2VubiBMR04gZGFubiBhdWNoIGFuZGVyZSBQb2xpdGlrPykKCmBgYHtyIFBha2V0ZSBsYWRlbn0KbGlicmFyeSgiaWdyYXBoIikKbGlicmFyeSgiaWdyYXBoZGF0YSIpCgojIFNlbGJzdHRlc3Q6IE1hbmlwdWxpZXJlbiBTaWUgZGlyZWt0IGltIFNrcmlwdCBvYmVuIGRpZSBXZXJ0ZSBmPz9yIG49MTggdW5kIHBvd2VyPTEuIFdhcyBwYXNzaWVydCwgd2VubiAzNSBQZXJzb25lbiBpbSBOZXR6d2VyayBzaW5kIHVuZCBkaWUgUG93ZXIgZGVuIFdlcnQgMiBoYXQ/CmBgYAoKYGBge3IgVW5mb2xsb3dtZSBUZWlsbmV0endlcmt9CnVuZm9sbG93ZWQgPC0gcmVhZC5jc3YoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9iaXJ4L0Jsb2Nrc2VtaW5hci9tYXN0ZXIvMDNVRkVkZ2VsaXN0LmNzdiIsIGhlYWRlcj1ULCBhcy5pcz1UKSAjIExpZXN0IGRpZSBFZGdlbGlzdCBlaW4uCnVuZm9sbG93bm9kIDwtIHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmlyeC9CbG9ja3NlbWluYXIvbWFzdGVyLzAxVUZOb2RlbGlzdC5jc3YiLCBoZWFkZXI9VCwgYXMuaXM9VCkgIyBMaWVzdCBkaWUgTm9kZWxpc3QgZWluLgp1bmZvbGxvd2VkIDwtIGFzLm1hdHJpeCh1bmZvbGxvd2VkKSAjIEVyc3RlbGx0IGF1cyBkZXIgRWRnZWxpc3QgZWluZSBNYXRyaXguCnVuZm9sbG93PC0gZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGQ9dW5mb2xsb3dlZCwgdmVydGljZXM9dW5mb2xsb3dub2QsIGRpcmVjdGVkPUYpICMgRnVlZ3QgZGllIEVkZ2UtIHVuZCBOb2RlbGlzdCB6dSBlaW5lbSBpZ3JhcGgtT2JqZWt0IHp1c2FtbWVuLgpwbG90KHVuZm9sbG93LCBsYXlvdXQ9bGF5b3V0X3dpdGhfa2ssIHN1Yj0gIk5ldHp3ZXJrIHZvbiBVbmZvbGxvd21lIikgClVGMiA8LSBkZWxldGVfdmVydGljZXModW5mb2xsb3csIFYodW5mb2xsb3cpW25hbWUgPSAiTGF1dCBnZWdlbiBOYXppcyJdKQpwbG90KExHTiwgbGF5b3V0PWxheW91dF9uaWNlbHksIG1haW49ICJPaG5lIExHTiIsIHN1Yj0gIk5ldHp3ZXJrIHZvbiBVbmZvbGxvd21lIG9obmUgTGF1dCBnZWdlbiBOYXppcyIpICN2ZXJ0ZXguY29sb3I9ICJwZXJ1IiwgdmVydGV4LmxhYmVsLmNvbG9yPSJncmV5MjciCgojIFNlbGJzdHRlc3Q6IE1hbmlwdWxpZXJlbiBTaWUgZGlyZWt0IGltIFNrcmlwdCBvYmVuIGRpZSBXZXJ0ZSBmPz9yIG49MTggdW5kIHBvd2VyPTEuIFdhcyBwYXNzaWVydCwgd2VubiAzNSBQZXJzb25lbiBpbSBOZXR6d2VyayBzaW5kIHVuZCBkaWUgUG93ZXIgZGVuIFdlcnQgMiBoYXQ/CmBgYAoKYGBge3IgQ291bnRlcnNwZWVjaCBUZWlsbmV0endlcmt9CmNzbm9kIDwtIHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmlyeC9CbG9ja3NlbWluYXIvbWFzdGVyLzAyQ1NOb2RlbGlzdC5jc3YiLCBoZWFkZXI9VCwgYXMuaXM9VCkKY3NlZGdlIDwtIHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmlyeC9CbG9ja3NlbWluYXIvbWFzdGVyLzAzQ1NFZGdlbGlzdC5jc3YiLCBoZWFkZXI9VCwgYXMuaXM9VCkKY291bnRlcmVkIDwtIGFzLm1hdHJpeChjc2VkZ2UpCmNvdW50ZXJzcGVlY2g8LSBncmFwaF9mcm9tX2RhdGFfZnJhbWUoZD1jc2VkZ2UsIHZlcnRpY2VzPWNzbm9kLCBkaXJlY3RlZD1GKQpwbG90KGNvdW50ZXJzcGVlY2gsIGxheW91dD1sYXlvdXRfd2l0aF9raykKQ1MyPC0gZGVsZXRlX3ZlcnRpY2VzKGNvdW50ZXJzcGVlY2gsIFYoY291bnRlcnNwZWVjaClbbmFtZT0iTGF1dCBnZWdlbiBOYXppcyJdKQpwbG90KENTMiwgbGF5b3V0PWxheW91dF93aXRoX2trKQpwbG90KENTMikjIHZlcnRleC5jb2xvcj1jKCJwaW5rIiwgInNreWJsdWUiKVsxCgpgYGAKCgpgYGB7ciBOZXR6d2VyayB6dXNhbW1lbn0KenVzbm9kIDwtIHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmlyeC9CbG9ja3NlbWluYXIvbWFzdGVyL0dlbWVpbnNhbU5vZGVzMDYuY3N2IiwgaGVhZGVyPVQsIGFzLmlzPVQpCnp1c2VkZ2UgPC0gIHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vYmlyeC9CbG9ja3NlbWluYXIvbWFzdGVyL0dlbWVpbnNhbUVkZ2VzMDEuY3N2IiwgaGVhZGVyPVQsIGFzLmlzPVQpCnp1c21hdHJpeCA8LSBhcy5tYXRyaXgoenVzZWRnZSkKenVzYW1tZW4gPC0gZ3JhcGhfZnJvbV9kYXRhX2ZyYW1lKGQ9enVzZWRnZSwgdmVydGljZXM9enVzbm9kLCBkaXJlY3RlZD1GKQpwbG90KHp1c2FtbWVuLCBsYXlvdXQ9bGF5b3V0X3dpdGhfZ2VtKQp6dXNhbW1lbgoKTEdOIDwtIGRlbGV0ZV92ZXJ0aWNlcyh6dXNhbW1lbiwgVih6dXNhbW1lbilbbmFtZT0iTGF1dCBnZWdlbiBOYXppcyJdKQojIHBsb3QoenVzYW1tZW4sIGVkZ2UuYXJyb3cuc2l6ZT0uNSwgdmVydGV4LmxhYmVsLmNvbG9yPSJibGFjayIsCmBgYAoKYGBge3IgdmlzdWFsaXNpZXJ1bmdlbiB9CgpWKHp1c2FtbWVuKSRjb2xvciA8LSAiZ29sZCIKcGxvdCh6dXNhbW1lbikKCgoKYGBgCiAKRGllIGVpbnplbG5lbiBQcm9qZWt0ZSB3ZXJkZW4gVmlzdWFsaXNpZXJ0LCBkYWJlaSB3ZXJkZW4gZGllIEtub3RlbiwgZGllIHNvd29obCBpbiBDb3VudGVyc3BlZWNoIGFscyBhdWNoIGluIFVuZm9sbG93bWUgdm9ya29tbWVuIGdyPz9uIHZpc3VhbGlzaWVydC4gCmBgYHtyIFZpc3VhbGlzaWVydW5nIGRlciBQcm9qZWt0ZX0KVih6dXNhbW1lbilbKFYoenVzYW1tZW4pJHR5cGU9PSIyIildJHNoYXBlIDwtICJzcXVhcmUiClYoenVzYW1tZW4pWyhWKHp1c2FtbWVuKSR0eXBlPT0iMSIpXSRzaGFwZSA8LSAiY2lyY2xlIgpWKHp1c2FtbWVuKVsoVih6dXNhbW1lbikkUHJvamVrdD09IjMiKV0kY29sb3IgPC0gImRhcmtvbGl2ZWdyZWVuMiIKVih6dXNhbW1lbilbKFYoenVzYW1tZW4pJFByb2pla3Q9PSIxIildJGNvbG9yIDwtICJjb3JhbDEiClYoenVzYW1tZW4pWyhWKHp1c2FtbWVuKSRQcm9qZWt0PT0iMiIpXSRjb2xvciA8LSAiZGVlcHNreWJsdWUiCnBsb3QoenVzYW1tZW4pCgpWKHp1c2FtbWVuKVsoVih6dXNhbW1lbikkUHJvamVrdD09IjMiKV0kY29sb3IgPC0gImdvbGQiClYoenVzYW1tZW4pWyhWKHp1c2FtbWVuKSRQcm9qZWt0PT0iMSIpXSRjb2xvciA8LSAiZ29sZCIKVih6dXNhbW1lbilbKFYoenVzYW1tZW4pJFByb2pla3Q9PSIyIildJGNvbG9yIDwtICJnb2xkIgoKcGxvdCh6dXNhbW1lbikKCgpgYGAKVGhlc2U6IEVzIGVuZ2FnaWVyZW4gc2ljaCBtZWhyIEs/P25zdGxlciBtaXQgTWlncmF0aW9uc2hpbnRlcmdydW5kIGJlaSBkZW4gUHJvamVrdGVuLCBkYSAuLi4gCgpVbSBoZXJhdXN6dWZpbmRlbiwgd2VsY2hlIGRlciBLPz9uc3RsZXIgZWluZW4gTWlncmF0aW9uc2hpbnRlcmdydW5kIGhhYmVuIHdpcmQgbmFjaCBkZW0gYXR0cmlidXQgIm1pZ3JhdGlvbiIgc2VsZWt0aWVydCwgZGFzIGRlbiBXZXJ0IDEgb2RlciAyIGFubmltbXQKaGVyYXVzZmluZGVuLCB3ZWxjaGUgSz8/bnN0bGVyIGVpbmVuIE1pZ3JhdGlvbnNoaW50ZXJncnVuZCBoYWJlbiB1bmQgd2VsY2hlIG5pY2h0CmBgYHtyIE1pZ3JhdGlvbiBoZXJhdXNmaW5kZW4gfQpWKHp1c2FtbWVuKVsoVih6dXNhbW1lbikkdHlwZT09IjIiKV0kc2hhcGUgPC0gInNxdWFyZSIKVih6dXNhbW1lbilbKFYoenVzYW1tZW4pJHR5cGU9PSIxIildJHNoYXBlIDwtICJjaXJjbGUiCgpWKExHTilbKFYoTEdOKSR0eXBlPT0iMiIpXSRzaGFwZSA8LSAic3F1YXJlIgpWKExHTilbKFYoTEdOKSR0eXBlPT0iMSIpXSRzaGFwZSA8LSAiY2lyY2xlIgpwbG90ICh6dXNhbW1lbikKClYoenVzYW1tZW4pWyhWKHp1c2FtbWVuKSRtaWdyYXRpb249PSIxIildJGNvbG9yIDwtICJyZWQiIAoKbWlncmF0aW9uPC0gZGVsZXRlX3ZlcnRpY2VzKHp1c2FtbWVuLCBWKHp1c2FtbWVuKVttaWdyYXRpb24gPT0iOTkiXSkgIyBlcyB3ZXJkZW4ga25vdGVuIGdlbD8/c2NodCwgZGFtaXQgbnVyIGRpZSA/P2JyaWcgYmxlaWJlbiwgZGllIEs/P25zdGxlciA/P2JyaWcgYmxlaWJlbiwgZGllIGVpbmVuIE1pZ3JhdGlvbnNoaW50ZXJncnVuZCBoYWJlbiBmPz9yIGVpbmUgYmVzc2VyZSA/P2JlcnNpY2h0LiAKcGxvdChtaWdyYXRpb24sbGF5b3V0PWxheW91dF9pbl9jaXJjbGUpIAoKcGxvdCh6dXNhbW1lbiwgbGF5b3V0PSBsYXlvdXRfbmljZWx5KQogICAgIAoKYGBgCk1hbiBrYW5uIGVya2VubmVuLCBkYXNzIAoKCgpoZXJhdXNmaW5kZW4sIG9iIEs/P25zdGxlciBtaXQgTWlncmF0aW9uc2hpbnRlcmdydW5kIHNpY2ggYXVjaCBlaGVyIGY/P3IgUG9saXRpayBlbmdhZ2llcmVuCmBgYHtyIE1pZ3JhdGlvbiB1bmQgUG9saXRpayB9CiAgVih6dXNhbW1lbilbKFYoenVzYW1tZW4pJGVuZ2FnZW1lbnQ9PSI1IildJGNvbG9yIDwtICJmaXJlYnJpY2siCgpwbG90KHp1c2FtbWVuLCBsYXlvdXQ9bGF5b3V0X3dpdGhfa2spCgpwb2xpdGlrMTwtIGRlbGV0ZV92ZXJ0aWNlcyh6dXNhbW1lbiwgVih6dXNhbW1lbilbZW5nYWdlbWVudCAhPSI1IiAmIHR5cGU9PSIyIiBdKSAjIGFsbGVzIGw/P3NjaGVuIHdhcyBzb3dvaGwgbmljaHQgc2ljaCBmPz9yIHBvbGl0aWsgZW5nYWdpZXJ0IEFMUyBBVUNIIGVpbmUgT3JnYW5pc2F0aW9uIGlzdCAoYWxsZSBPcmdhbmlzYXRpb25lbiBkaWUgc2ljaCBuaWNodCBmPz9yIHBvbGl0aWsgZW5nYWdpZXJlbikKbW1pZ3JhdGlvbiA8LSBkZWxldGVfdmVydGljZXMocG9saXRpazEsIFYocG9saXRpazEpW3R5cGU9PSIxIiAmIG1pZ3JhdGlvbiAhPSAiMSJdKQptbTwtIGRlbGV0ZV92ZXJ0aWNlcyhtbWlncmF0aW9uLCBWKG1taWdyYXRpb24pW25hbWU9PSJMYXV0IGdlZ2VuIE5hemlzIl0pCnBsb3QobW0pCmRlZ3JlZShtbSkKYGBgCks/P25zdGxlciBtaXQgTWlncmF0aW9uc2hpbnRlcmdydW5kIGVuZ2FnaWVyZW4gc2ljaCBmPz9yIDcgT3JnYW5pc2F0aW9uZW4gZGVyIFBvbGl0aWsuIEluc2dlc2FtdCBnaWJ0IGVzIDE2IE1lbnNjaGVuIG1pdCBNaWdyYXRpb25zaGludGVyZ3J1bmQuIAoKRXMgd3VyZGVuIGFsbGUgT3JnYW5pc2F0aW9uZW4gZ2VsPz9zY2h0LCBkaWUgc2ljaCBuaWNodCBmPz9yIFBvbGl0aWsgZW5nYWdpZXJlbiB1bmQgYWxsZSBQZXJzb25lbiwgZGllIGtlaW5lbiBNaWdyYXRpb25zaGludGVyZ3J1bmQgaGFiZW4uIEVzIGJsZWlidCBkYXMgTmV0endlcmsgYXVzIE1lbnNjaGVuIG1pdCBNaWdyYXRpb25zaGludGVyZ3J1bmQuIE1hbiBlcmtlbm50LCBkYXNzIG51biA1IE9yZ2FuaXNhdGlvbmVuIGF1cyBkZW0gQmVyZWljaCBQb2xpdGlrIGFsbGVpbmUgc3RlaGVuLiA2IE9yZ2FuaXNhdGlvbmVuIGF1cyBkZW0gQmVyZWljaCBQb2xpdGlrIHNpbmQgbWl0IEs/P25zdGxlcm4gbWl0IE1pZ3JhdGlvbnNoaW50ZXJncnVuZCB2ZXJidW5kZW4uIAoKTnVuIHdlcmRlbiBkaWUgSz8/bnN0bGVyIG9obmUgTWlncmF0aW9uc2hpbnRlcmdydW5kIHp1bSBWZXJnbGVpY2ggaGVyYW5nZXpvZ2VuLiAKCmBgYHtyfQpWKHp1c2FtbWVuKVsoVih6dXNhbW1lbikkZW5nYWdlbWVudD09IjUiKV0kY29sb3IgPC0gImZpcmVicmljayIKcG9saXRpazI8LSBkZWxldGVfdmVydGljZXMoenVzYW1tZW4sIFYoenVzYW1tZW4pW2VuZ2FnZW1lbnQgIT0iNSIgJiB0eXBlPT0iMiIgXSkgIyBhbGxlcyBsPz9zY2hlbiB3YXMgc293b2hsIG5pY2h0IHNpY2ggZj8/ciBwb2xpdGlrIGVuZ2FnaWVydCBBTFMgQVVDSCBlaW5lIE9yZ2FuaXNhdGlvbiBpc3QgKGFsbGUgT3JnYW5pc2F0aW9uZW4gZGllIHNpY2ggbmljaHQgZj8/ciBwb2xpdGlrIGVuZ2FnaWVyZW4pCm9taWdyYXRpb24gPC0gZGVsZXRlX3ZlcnRpY2VzKHBvbGl0aWsyLCBWKHBvbGl0aWsyKVttaWdyYXRpb249PSIxIl0pCm9tIDwtIGRlbGV0ZV92ZXJ0aWNlcyhvbWlncmF0aW9uLCBWKG9taWdyYXRpb24pW25hbWU9IkxhdXQgZ2VnZW4gTmF6aXMiXSkKcGxvdChvbSwgbGF5b3V0PWxheW91dF93aXRoX2trKQpkZWdyZWUob20pICMgZGllIHN1bW1lIGFsbGVyIERlZ3JlZXMgaXN0IDE4ID0gOSBWZXJiaW5kdW5nZW4gCgoKYGBgCiBLPz9uc3RsZXIgb2huZSBNaWdyYXRpb25zaGludGVyZ3J1bmQgZW5nYWdpZXJlbiBzaWNoIGY/P3IgOSBPcmdhbmlzYXRpb25lbiBkZXIgUG9saXRpay4gSW5zZ2VzYW10IGdpYnQgZXMgMjUgUGVyc29uZW4gb2huZSBNaWdyYXRpb25zaGludGVyZ3J1bmQuIAogCiBHZWdlbj8/YmVyc3RlbGx1bmcgYmVpZGVyIE5ldHp3ZXJrZTogCmBgYHtyfQpwYXIobWZyb3c9YygxLDIpLCBtYXI9YygwLDAsMiwxKSkgIyBkZWZpbmllcnQsIGRhc3MgMyBBYmJpbGR1bmdlbiBpbiBlaW5lciBaZWlsZSBzdGVoZW4KcGxvdChvbSwgCiAgICAgc3ViID0gIks/P25zdGxlciBvaG5lIE1pZ3JhdGlvbnNoaW50ZXJncnVuZCwgZGllIHNpY2ggZj8/ciBwb2xpdGlzY2hlIE9yZ2FuaXNhdGlvbmVuIGVuZ2FnaWVyZW4iKQpwbG90KG1tLAogICAgIHN1Yj0gIks/P25zdGxlciBtaXQgTWlncmF0aW9uc2hpbnRlcmdydW5kLCBkaWUgc2ljaCBmPz9yIHBvbGl0aXNjaGUgT3JnYW5pc2F0aW9uZW4gZW5nYWdpZXJlbiIpCgoKcGFyKG1mcm93PWMoMSwxKSwgbWFyPWMoMCwwLDIsMikpICMgc2V0enQgZGllIERhcnN0ZWxsdW5nIHdpZWRlciB6dXI/P2NrCmBgYAoKCgpgYGB7ciBOZXR6d2Vya21hPz9lfQpjb21wb25lbnRzKHp1c2FtbWVuKSAjIEFuemFobCBkZXIgS29tcG9uZW50ZW4gKGFsbGUgS25vdGVuLCBkaWUgbWl0ZWluYW5kZXIgdmVyYnVuZGVuIHNpbmQpCmlzX2Nvbm5lY3RlZCh6dXNhbW1lbikgIyB6ZWlndCBhbiBvYiBkYXMgTmV0endlcmsgbWl0ZWluYW5kZXIgdmVyYnVuZGVuIGlzdCAob2IgZXMgZWluZSBlaW56aWdlIEtvbXBvbmVudGUgaXN0KQoKZGlhbWV0ZXIoenVzYW1tZW4pICMgV2VsY2hlbiBEdXJjaG1lc3NlciBoYXQgZGFzIE5ldHp3ZXJrPyAoVW1mYW5nKSBCZXJlY2huZXQsIHdpZSBkZXIgQWJzdGFuZCBpbSBOZXR6d2VyayBpc3QKCmVkZ2VfZGVuc2l0eSh6dXNhbW1lbikgIyBXaWUgaXN0IGRpZSBEaWNodGUgZGVzIE5ldHp3ZXJrcz8gCmVkZ2VfZGVuc2l0eSh1bmZvbGxvdykKZWRnZV9kZW5zaXR5KGNvdW50ZXJzcGVlY2gpCgpwbG90KExHTiwgbGF5b3V0PWxheW91dF93aXRoX2trLCBtYWluPSAidW5mb2xsb3ciKQpwbG90KENTMiwgbGF5b3V0PWxheW91dF93aXRoX2trLCBtYWluID0gIkNvdW50ZXJzcGVlY2giKQoKbWVhbl9kaXN0YW5jZSAoenVzYW1tZW4pIyBQZmFkZGlzdGFueiB3aWUgbGFuZ2UgYmlzIHp1bSBhbSB3ZWl0ZXN0ZW4gZW50ZmVybnRlbiBLbm90ZW4/IAoKYGBgCgpgYGB7ciBDbHVzdGVyYW5hbHlzZX0KZ2MgPC0gY2x1c3Rlcl93YWxrdHJhcChVRjIpCm1vZHVsYXJpdHkoZ2MpCm1lbWJlcnNoaXAoZ2MpCnBsb3QgKGdjLCBVRjIsIGVkZ2UuYXJyb3cuc2l6ZT0uMiwgbGF5b3V0PWxheW91dF9uaWNlbHkpCgpnYyA8LSBjbHVzdGVyX3dhbGt0cmFwKENTMikKbW9kdWxhcml0eShnYykKbWVtYmVyc2hpcChnYykKcGxvdCAoZ2MsIENTMiwgZWRnZS5hcnJvdy5zaXplPS4yLCBsYXlvdXQ9bGF5b3V0X25pY2VseSkKCgoKYGBgCgoKCgo=